/*
 * Copyright (c) 2022  by Junzhao
 * THIS FILE IS PART OF JAVASE Song Huongkang PROJECT
 * All Rights Reserved.
 */

package 日期与时间.JDK8之后;

import org.junit.Test;

import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.time.format.FormatStyle;
import java.time.temporal.TemporalAccessor;

/**
 * @description
该类提供了三种格式化方法：
 预定义的标准格式。如：
ISO_LOCAL_DATE_TIME;
ISO_LOCAL_DATE;
ISO_LOCAL_TIME
 本地化相关的格式。如：ofLocalizedDateTime(FormatStyle.LONG)
 自定义的格式。如：ofPattern(“yyyy-MM-dd hh:mm:ss”)
 * @author 俊昭
 * @date 2022/4/17
*/
public class DateTimeFormatterTest {
    @Test
    public void DTFt1(){
        // 预定义形式
        DateTimeFormatter formatter = DateTimeFormatter.ISO_LOCAL_DATE_TIME;
        LocalDateTime now = LocalDateTime.now();
        // 格式化
        // 使用此格式化程序格式化日期时间对象。
        // 这将使用格式化程序的规则将日期时间格式化为字符串。
        String format = formatter.format(now);

        System.out.println(now);// 2022-04-17T15:19:54.872
        System.out.println(format);// 2022-04-17T15:19:54.872

        // 解析
        TemporalAccessor parse = formatter.parse(format);
        System.out.println(parse);// {},ISO resolved to 2022-04-17T15:24:37.901




    }
    @Test
    public void DTFt2(){
        // 本地化相关格式
        LocalDateTime now = LocalDateTime.now();

        DateTimeFormatter formatter1 = DateTimeFormatter.ofLocalizedDateTime(FormatStyle.LONG);
        String format1 = formatter1.format(now);
        System.out.println(format1);// 2022年4月17日 下午03时32分25秒


        DateTimeFormatter formatter2 = DateTimeFormatter.ofLocalizedDateTime(FormatStyle.SHORT);
        String format2 = formatter2.format(now);
        System.out.println(format2);// 22-4-17 下午3:32


        DateTimeFormatter formatter3 = DateTimeFormatter.ofLocalizedDate(FormatStyle.FULL);
        String format3 = formatter3.format(now);
        System.out.println(format3);// 2022年4月17日 星期日

    }
    @Test
    public void DTFt3(){
        // 自定义格式格式
        LocalDateTime now = LocalDateTime.now();

        DateTimeFormatter formatter1 = DateTimeFormatter.ofPattern("yyyy-MM-dd hh:mm:ss");
        String format1 = formatter1.format(now);
        System.out.println(format1);// 2022-04-17 03:34:07

    }

}
